package com.ck.client.model.vo;

import com.alibaba.fastjson.JSONObject;

import java.io.Serializable;

/**
 * 节目VO
 *
 * @author linqiang
 * @date 2018-07-09 15:39
 */
public class ProgramVO implements Serializable {
    private static final long serialVersionUID = 6307322497769500005L;
    /**
     * 节目版本号
     */
    private String programVersion;
    /**
     * 节目名称
     */
    private String programName;
    /**
     * 节目大小(单位：字节)
     */
    private Long programSize;
    /**
     * 投放结束时间
     */
    private Long putinStartTime;
    /**
     * 投放结束时间
     */
    private Long putinEndTime;
    /**
     * 节目时长(毫秒)
     */
    private Integer programDuration;
    /**
     * 投放级别（1普通计划，2插播计划）
     */
    private Integer putinLevel;
    /**
     * 投放限制:all_day（所有），work_day（仅工作（周一到周五）），work_end（仅周末（周六+周日）
     */
    private String putinLimit;

    /**
     * 原始节目素材JSON信息
     */
    private String programInfo;

    /**
     * key为分辨率，value为对应的素材数组
     */
    private JSONObject sourceInfo;

    /**
     * 下发时间
     */
    private Long pushTime;

    public ProgramVO() {
    }

    public ProgramVO(String programVersion, String programName, Long programSize, Long putinStartTime, Long putinEndTime, Integer programDuration, Integer putinLevel, String putinLimit, String programInfo, JSONObject sourceInfo, Long pushTime) {
        this.programVersion = programVersion;
        this.programName = programName;
        this.programSize = programSize;
        this.putinStartTime = putinStartTime;
        this.putinEndTime = putinEndTime;
        this.programDuration = programDuration;
        this.putinLevel = putinLevel;
        this.putinLimit = putinLimit;
        this.programInfo = programInfo;
        this.sourceInfo = sourceInfo;
        this.pushTime = pushTime;
    }

    public String getProgramVersion() {
        return programVersion;
    }

    public void setProgramVersion(String programVersion) {
        this.programVersion = programVersion;
    }

    public String getProgramName() {
        return programName;
    }

    public void setProgramName(String programName) {
        this.programName = programName;
    }

    public Long getProgramSize() {
        return programSize;
    }

    public void setProgramSize(Long programSize) {
        this.programSize = programSize;
    }

    public Long getPutinStartTime() {
        return putinStartTime;
    }

    public void setPutinStartTime(Long putinStartTime) {
        this.putinStartTime = putinStartTime;
    }

    public Long getPutinEndTime() {
        return putinEndTime;
    }

    public void setPutinEndTime(Long putinEndTime) {
        this.putinEndTime = putinEndTime;
    }

    public Integer getProgramDuration() {
        return programDuration;
    }

    public void setProgramDuration(Integer programDuration) {
        this.programDuration = programDuration;
    }

    public Integer getPutinLevel() {
        return putinLevel;
    }

    public void setPutinLevel(Integer putinLevel) {
        this.putinLevel = putinLevel;
    }

    public String getPutinLimit() {
        return putinLimit;
    }

    public void setPutinLimit(String putinLimit) {
        this.putinLimit = putinLimit;
    }

    public String getProgramInfo() {
        return programInfo;
    }

    public void setProgramInfo(String programInfo) {
        this.programInfo = programInfo;
    }

    public JSONObject getSourceInfo() {
        return sourceInfo;
    }

    public void setSourceInfo(JSONObject sourceInfo) {
        this.sourceInfo = sourceInfo;
    }

    public Long getPushTime() {
        return pushTime;
    }

    public void setPushTime(Long pushTime) {
        this.pushTime = pushTime;
    }

    @Override
    public String toString() {
        return "ProgramVO{" +
                "programVersion='" + programVersion + '\'' +
                ", programName='" + programName + '\'' +
                ", programSize=" + programSize +
                ", putinStartTime=" + putinStartTime +
                ", putinEndTime=" + putinEndTime +
                ", programDuration=" + programDuration +
                ", putinLevel=" + putinLevel +
                ", putinLimit='" + putinLimit + '\'' +
                ", programInfo='" + programInfo + '\'' +
                ", sourceInfo=" + sourceInfo +
                ", pushTime=" + pushTime +
                '}';
    }
}
